package exercise02;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

/**
 * spring控制反转IOC 与依赖注入DI的练手
 * 要求：
 * 1、新建一个员工Employer类，
 * 有属性String name,char sex,int age,Date birthday,double salary(薪水)
 * 有构造方法与get/set方法  toString()
 * 2、新建接口EmployerDao,里面有一个findEmployer()方法,返回多个员工对象
 * 3、新建接口实现EmployerDaoI类，实现接口EmployerDao,属性List<Employer>
 * 重写方法，返回员工集合List
 * 4、新建接口EmployerService,
 *  a、里面有一个findEmployer()方法,利用出生日期计算该员工的实际年龄，返回员工集合List
 *  b、有一个计算员工平均工资的方法calcAvgSalary(),返回保留1位小数的平均工资
 * 5、新建接口实现EmployerServiceI类，实现接口EmployerService,属性EmployerDao
 * 重写方法，返回员工集合List及平均工资
 * 6、新建类EmployerController,属性EmployerService,
 * 还有findEmployer(),返回员工集合List.
 * getAvgSalary(),获取平均工资。
 * 7、测试类Exercise02，新建一个exercise02.xmlexercise02.xml的spring配置文件，把
 * 类进行bean管理，实现注入，输出每一个员工信息及平均工资，
 * 该员工的工资与平均工资的差，判断是拖后腿还是作贡献。
 */
public class Exercise02 {

    public static void main(String[] args) {
        //加载spring的配置文件
        ApplicationContext ac = new ClassPathXmlApplicationContext("exercise02.xml");
        EmployerController ec = (EmployerController)ac.getBean("ec");
        //获取所有员工
        List<Employer> list = ec.findEmployer();
        //获取平均工资
        double avg = ec.getAvgSalary();
        System.out.println("平均工资为"+avg);
        for (Employer e : list) {
            System.out.println(e);
            String result = avg > e.getSalary()?"拖后腿":"做贡献";
            System.out.println("员工工资为"+e.getSalary()+","+result);
        }
    }
}
